package com.example.template.course;

/**
 * readme.md，更关心的是过程、流程
 * 网课程上课流程，会有一个或多个未实现的方法，而且这几个未实现的方法有固定的执行顺序
 */
public abstract class NetworkCourse {

    protected void createCourse(){

        releasePreviewMaterials();

        preLesson();

        live();

        needHomework();

        if (needHomework()) {
            checkHomework();
        }
    }

    protected abstract void checkHomework();

    protected boolean needHomework(){
        return false;
    }

    final void live(){
        System.out.println("3、直播上课");
    }

    final void preLesson(){
        System.out.println("2、备课");
    }

    final void releasePreviewMaterials(){
        System.out.println("1、发布预习资料");
    }

}
